package com.pktechan.manage.base;

import java.io.Serializable;
import java.util.List;

/**
 * @program: cloudfloating
 * @description: 服务层基类
 * @author: qx.zhang
 * @create: 2021-03-08 09:27
 **/
public interface BaseService<T> {

    /**
     * 由业务类实现
     *
     * @return
     */
    BaseMapper<T> getBaseMapper();

    /**
     * 对对象进行持久化操作，如果成功则返回持久化后的ID
     *
     * @param obj
     */
    void save(T obj);

    /**
     * 修改指定的持久化对象
     *
     * @param obj
     */
    void update(T obj);

    /**
     * 删除指定id的持久化对象
     *
     * @param id
     */
    void deleteById(Serializable id);

    /**
     * 根据ID查询对象
     *
     * @param id
     */
    T getById(Serializable id);

    /**
     * 查询对象集合
     *
     * @param obj
     * @return
     */
    List<T> getList(T obj);
}
